import store from '@/store'

/**
 * @param { string } path
 * @returns { Boolean }
 */

export function isExternal (path) {
    return /^(https?:|mailto:|tel:)/.test(path)
}

// 校验手机号
export const isPhoneNumber = (phone) => {
    let reg = /^1[3456789]\d{9}$/

    if (reg.test(phone)) {
        return true
    }

    return false
}

// 存储数据到 localstorage 中
export const setStorage = (key, value) => {
    localStorage.setItem(key, value)
}

// 删除 localstorage 中的数据
export const removeStorage = (key) => {
    localStorage.removeItem(key)
}

// 获取 localstorage 中的数据
export const getStorage = (key) => {
    let value = localStorage.getItem(key)

    if (!value) return

    return value
}

// 获取系统时间
export const getSystemDate = () => {
    let date = new Date()
    let year = date.getFullYear() // 年
    let month = date.getMonth() + 1 // 月
    let day = date.getDate() // 日
    let hour = date.getHours() // 时
    let minute = date.getMinutes() // 分
    let second = date.getSeconds() // 秒

    month = month < 10 ? '0' + month : month
    day = day < 10 ? '0' + day : day
    hour = hour < 10 ? '0' + hour : hour
    minute = minute < 10 ? '0' + minute : minute
    second = second < 10 ? '0' + second : second

    return year + '/' + month + '/' + day + ' ' + hour + ':' + minute + ':' + second
}

// 根据系统时间选择问候语
export const getGreeting = () => {
    let date = new Date()
    let hour = date.getHours()

  // 根据小时数判断时间段
  if (hour >= 5 && hour < 9) {
        return '早上好！'; // 5:00 - 8:59
    } else if (hour >= 9 && hour < 12) {
        return '上午好！'; // 9:00 - 11:59
    } else if (hour >= 12 && hour < 14) {
        return '中午好！'; // 12:00 - 13:59
    } else if (hour >= 14 && hour < 18) {
        return '下午好！'; // 14:00 - 17:59
    } else if (hour >= 18 && hour < 24) {
        return '晚上好！'; // 18:00 - 23:59
    } else {
        return '夜深了，注意休息~'; // 0:00 - 4:59
    }
}

// 校验当前页面是否登录
export const checkLogin = () => {
    let token = store.state.user.token
    let isLogin = store.state.user.isLogin

    if (!token || !isLogin) {
        return false
    }

    return true
}

// 获取图片
export const getImgUrl = (url) => {
    return url ?  process.env.VUE_APP_IMG_BASE_API + url : ''
}

// 检测是否需要刷新token
// expires_time：过期时间，errorTime：误差时间
export const checkRefreshToken = (expires_time, errorTime = 30 * 1000) => {
    let accessCreateTime = store.state.user.accessCreateTime
    if (!accessCreateTime) return false

    let accessCreateTimeStamp = Date.now(accessCreateTime)
    let now = Date.now()

    // 判断是否过期，误差 30s
    if (now - accessCreateTimeStamp >= expires_time - errorTime) {
        return false
    }

    return true
}